<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>严格模式的变化</title>
</head>
<body>
  <script>
    'use strict'
    // 1. 我们的变量名必须先声明再使用
    // num = 10
    // console.log(num)
    var num = 10
    console.log(num)

    // 2.我们不能随意删除已经声明好的变量
    // delete num

    // 3. 严格模式下全局作用域中函数中的 this 是 undefined
    // function fn() {
    //     console.log(this)  // undefined

    // }
    // fn()

    // 4. 严格模式下,如果 构造函数不加new调用, this 指向的是undefined 如果给它赋值则 会报错.
    // function Star() {
    //     this.sex = '男'
    // }
    // // Star()
    // var ldh = new Star()
    // console.log(ldh.sex)

    // 5. 定时器 this 还是指向 window
    // setTimeout(function() {
    //     console.log(this)

    // }, 2000)
    // a = 1
    // a = 2

    // 6. 严格模式下函数里面的参数不允许有重名
    // function fn(a, a) {
    //     console.log(a + a)

    // }
    // fn(1, 2)
    function fn () {}
  </script>
</body>
</html>